<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<meta name="theme-color" content="#222" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#222" media="(prefers-color-scheme: dark)"><meta name="generator" content="Hexo 6.3.0">

  <link rel="apple-touch-icon" sizes="180x180" href="/hexo/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/hexo/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/hexo/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/hexo/images/logo.svg" color="#222">

<link rel="stylesheet" href="/hexo/css/main.css">



<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" integrity="sha256-Z1K5uhUaJXA7Ll0XrZ/0JhX4lAtZFpT6jkKrEDT0drU=" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css" integrity="sha256-PR7ttpcvz8qrF57fur/yAx1qXMFJeJFiA6pSzWi0OIE=" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pace/1.2.4/themes/blue/pace-theme-bounce.css">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.2.4/pace.min.js" integrity="sha256-gqd7YTjg/BtfqWSwsJOvndl0Bxc8gFImLEkXQT8+qj0=" crossorigin="anonymous"></script>

<script class="next-config" data-name="main" type="application/json">{"hostname":"codeleader.gitee.io","root":"/hexo/","images":"/hexo/images","scheme":"Gemini","darkmode":true,"version":"8.14.2","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12},"copycode":{"enable":true,"style":"mac"},"bookmark":{"enable":false,"color":"#222","save":"auto"},"mediumzoom":false,"lazyload":true,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"stickytabs":false,"motion":{"enable":true,"async":false,"transition":{"menu_item":"fadeInDown","post_block":"fadeIn","post_header":"fadeInDown","post_body":"fadeInDown","coll_header":"fadeInLeft","sidebar":"fadeInUp"}},"prism":false,"i18n":{"placeholder":"搜索...","empty":"没有找到任何搜索结果：${query}","hits_time":"找到 ${hits} 个搜索结果（用时 ${time} 毫秒）","hits":"找到 ${hits} 个搜索结果"},"path":"/hexo/search.xml","localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false}}</script><script src="/hexo/js/config.js"></script>

    <meta name="description" content="在线教育平台项目总结 业务模块">
<meta property="og:type" content="article">
<meta property="og:title" content="简历项目总结(谷粒学院+商品汇电商+油田项目)">
<meta property="og:url" content="https://codeleader.gitee.io/hexo/2023/08/13/%E7%AE%80%E5%8E%86%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93/index.html">
<meta property="og:site_name" content="CodeLeader">
<meta property="og:description" content="在线教育平台项目总结 业务模块">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230628213533104.png">
<meta property="og:image" content="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230628213817956.png">
<meta property="og:image" content="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230628213918454.png">
<meta property="og:image" content="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230813103710303.png">
<meta property="og:image" content="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230813121803223.png">
<meta property="article:published_time" content="2023-08-13T06:51:48.601Z">
<meta property="article:modified_time" content="2023-08-13T06:53:37.624Z">
<meta property="article:author" content="别团等shy哥发育">
<meta property="article:tag" content="面经">
<meta property="article:tag" content="简历">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230628213533104.png">


<link rel="canonical" href="https://codeleader.gitee.io/hexo/2023/08/13/%E7%AE%80%E5%8E%86%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93/">



<script class="next-config" data-name="page" type="application/json">{"sidebar":"","isHome":false,"isPost":true,"lang":"zh-CN","comments":true,"permalink":"https://codeleader.gitee.io/hexo/2023/08/13/%E7%AE%80%E5%8E%86%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93/","path":"2023/08/13/简历项目总结/","title":"简历项目总结(谷粒学院+商品汇电商+油田项目)"}</script>

<script class="next-config" data-name="calendar" type="application/json">""</script>
<title>简历项目总结(谷粒学院+商品汇电商+油田项目) | CodeLeader</title>
  








  <noscript>
    <link rel="stylesheet" href="/hexo/css/noscript.css">
  </noscript>
<style>mjx-container[jax="SVG"] {
  direction: ltr;
}

mjx-container[jax="SVG"] > svg {
  overflow: visible;
}

mjx-container[jax="SVG"][display="true"] {
  display: block;
  text-align: center;
  margin: 1em 0;
}

mjx-container[jax="SVG"][justify="left"] {
  text-align: left;
}

mjx-container[jax="SVG"][justify="right"] {
  text-align: right;
}

g[data-mml-node="merror"] > g {
  fill: red;
  stroke: red;
}

g[data-mml-node="merror"] > rect[data-background] {
  fill: yellow;
  stroke: none;
}

g[data-mml-node="mtable"] > line[data-line] {
  stroke-width: 70px;
  fill: none;
}

g[data-mml-node="mtable"] > rect[data-frame] {
  stroke-width: 70px;
  fill: none;
}

g[data-mml-node="mtable"] > .mjx-dashed {
  stroke-dasharray: 140;
}

g[data-mml-node="mtable"] > .mjx-dotted {
  stroke-linecap: round;
  stroke-dasharray: 0,140;
}

g[data-mml-node="mtable"] > svg {
  overflow: visible;
}

[jax="SVG"] mjx-tool {
  display: inline-block;
  position: relative;
  width: 0;
  height: 0;
}

[jax="SVG"] mjx-tool > mjx-tip {
  position: absolute;
  top: 0;
  left: 0;
}

mjx-tool > mjx-tip {
  display: inline-block;
  padding: .2em;
  border: 1px solid #888;
  font-size: 70%;
  background-color: #F8F8F8;
  color: black;
  box-shadow: 2px 2px 5px #AAAAAA;
}

g[data-mml-node="maction"][data-toggle] {
  cursor: pointer;
}

mjx-status {
  display: block;
  position: fixed;
  left: 1em;
  bottom: 1em;
  min-width: 25%;
  padding: .2em .4em;
  border: 1px solid #888;
  font-size: 90%;
  background-color: #F8F8F8;
  color: black;
}

foreignObject[data-mjx-xml] {
  font-family: initial;
  line-height: normal;
  overflow: visible;
}

.MathJax path {
  stroke-width: 3;
}

mjx-container[display="true"] {
  overflow: auto hidden;
}

mjx-container[display="true"] + br {
  display: none;
}
</style></head>

<body itemscope itemtype="http://schema.org/WebPage" class="use-motion">
  <div class="headband"></div>

  <main class="main">
    <div class="column">
      <header class="header" itemscope itemtype="http://schema.org/WPHeader"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏" role="button">
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/hexo/" class="brand" rel="start">
      <i class="logo-line"></i>
      <p class="site-title">CodeLeader</p>
      <i class="logo-line"></i>
    </a>
      <p class="site-subtitle" itemprop="description">欲买桂花同载酒，终不似少年游</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger" aria-label="搜索" role="button">
        <i class="fa fa-search fa-fw fa-lg"></i>
    </div>
  </div>
</div>



<nav class="site-nav">
  <ul class="main-menu menu"><li class="menu-item menu-item-home"><a href="/hexo/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a></li><li class="menu-item menu-item-about"><a href="/hexo/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a></li><li class="menu-item menu-item-tags"><a href="/hexo/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签<span class="badge">19</span></a></li><li class="menu-item menu-item-categories"><a href="/hexo/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类<span class="badge">4</span></a></li><li class="menu-item menu-item-archives"><a href="/hexo/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档<span class="badge">17</span></a></li><li class="menu-item menu-item-schedule"><a href="/hexo/schedule/" rel="section"><i class="fa fa-calendar fa-fw"></i>日程表</a></li><li class="menu-item menu-item-sitemap"><a href="/hexo/sitemap.xml" rel="section"><i class="fa fa-sitemap fa-fw"></i>站点地图</a></li><li class="menu-item menu-item-commonweal"><a href="/hexo/404/" rel="section"><i class="fa fa-heartbeat fa-fw"></i>公益 404</a></li>
      <li class="menu-item menu-item-search">
        <a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
        </a>
      </li>
  </ul>
</nav>



  <div class="search-pop-overlay">
    <div class="popup search-popup"><div class="search-header">
  <span class="search-icon">
    <i class="fa fa-search"></i>
  </span>
  <div class="search-input-container">
    <input autocomplete="off" autocapitalize="off" maxlength="80"
           placeholder="搜索..." spellcheck="false"
           type="search" class="search-input">
  </div>
  <span class="popup-btn-close" role="button">
    <i class="fa fa-times-circle"></i>
  </span>
</div>
<div class="search-result-container no-result">
  <div class="search-result-icon">
    <i class="fa fa-spinner fa-pulse fa-5x"></i>
  </div>
</div>

    </div>
  </div>

</header>
        
  
  <aside class="sidebar">

    <div class="sidebar-inner sidebar-nav-active sidebar-toc-active">
      <ul class="sidebar-nav">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <div class="sidebar-panel-container">
        <!--noindex-->
        <div class="post-toc-wrap sidebar-panel">
            <div class="post-toc animated"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#section"><span class="nav-number">1.</span> <span class="nav-text"></span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E5%B9%B3%E5%8F%B0%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93"><span class="nav-number">2.</span> <span class="nav-text">在线教育平台项目总结</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%B8%9A%E5%8A%A1%E6%A8%A1%E5%9D%97"><span class="nav-number">2.1.</span> <span class="nav-text">业务模块</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E5%8A%9F%E8%83%BD%E6%A8%A1%E5%9D%97"><span class="nav-number">2.2.</span> <span class="nav-text">功能模块</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%8A%80%E6%9C%AF%E7%82%B9"><span class="nav-number">2.3.</span> <span class="nav-text">技术点</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E9%A1%B9%E7%9B%AE%E6%8F%8F%E8%BF%B0"><span class="nav-number">2.4.</span> <span class="nav-text">项目描述</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E5%BA%94%E7%94%A8%E6%8A%80%E6%9C%AF"><span class="nav-number">2.5.</span> <span class="nav-text">应用技术</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%B8%BB%E8%A6%81%E5%B7%A5%E4%BD%9C"><span class="nav-number">2.6.</span> <span class="nav-text">主要工作</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F%E7%9A%84cap%E5%8E%9F%E7%90%86"><span class="nav-number">2.6.1.</span> <span class="nav-text">分布式系统的CAP原理</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E9%A1%B9%E7%9B%AE%E9%97%AE%E7%AD%94"><span class="nav-number">2.7.</span> <span class="nav-text">项目问答</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E9%A1%B9%E7%9B%AE%E6%8B%86%E5%88%86%E4%B8%BA%E5%93%AA%E5%87%A0%E4%B8%AA%E6%9C%8D%E5%8A%A1%E4%BD%A0%E8%B4%9F%E8%B4%A3%E5%93%AA%E4%B8%AA"><span class="nav-number">2.7.1.</span> <span class="nav-text">项目拆分为哪几个服务？你负责哪个？</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95%E7%9A%84%E5%87%A0%E7%A7%8D%E5%AE%9E%E7%8E%B0%E6%96%B9%E5%BC%8F"><span class="nav-number">2.7.2.</span> <span class="nav-text">单点登录的几种实现方式？</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%BE%AE%E4%BF%A1%E6%89%AB%E7%A0%81%E7%99%BB%E5%BD%95%E7%9A%84%E6%B5%81%E7%A8%8B"><span class="nav-number">2.7.3.</span> <span class="nav-text">微信扫码登录的流程？</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E6%89%AB%E7%A0%81%E4%BA%BA%E7%9A%84%E4%BF%A1%E6%81%AF"><span class="nav-number">2.7.3.1.</span> <span class="nav-text">如何获取扫码人的信息？</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E9%98%BF%E9%87%8C%E4%BA%91oss%E6%80%8E%E4%B9%88%E7%94%A8%E7%9A%84"><span class="nav-number">2.7.4.</span> <span class="nav-text">阿里云OSS怎么用的？</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E8%A7%86%E9%A2%91%E7%82%B9%E6%92%AD%E6%80%8E%E4%B9%88%E7%94%A8%E7%9A%84%E6%92%AD%E6%94%BE%E5%99%A8%E7%94%A8%E7%9A%84%E5%93%AA%E4%B8%AA"><span class="nav-number">2.7.5.</span> <span class="nav-text">视频点播怎么用的？播放器用的哪个？</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E9%98%BF%E9%87%8C%E4%BA%91%E7%9F%AD%E4%BF%A1%E6%9C%8D%E5%8A%A1%E6%80%8E%E4%B9%88%E7%94%A8%E7%9A%84"><span class="nav-number">2.7.6.</span> <span class="nav-text">阿里云短信服务怎么用的？</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97%E6%80%8E%E4%B9%88%E7%94%A8%E7%9A%84"><span class="nav-number">2.7.7.</span> <span class="nav-text">消息队列怎么用的？</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E9%A1%B9%E7%9B%AE%E7%9A%84%E9%9A%BE%E7%82%B9%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3%E7%9A%84"><span class="nav-number">2.7.8.</span> <span class="nav-text">项目的难点？怎么解决的？</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E9%A1%B9%E7%9B%AE%E4%B8%ADredis%E6%80%8E%E4%B9%88%E7%94%A8%E7%9A%84"><span class="nav-number">2.7.9.</span> <span class="nav-text">项目中Redis怎么用的</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E8%83%BD%E5%A4%A7%E8%87%B4%E7%94%BB%E4%B8%80%E4%B8%8B%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E5%9B%BE%E5%90%97"><span class="nav-number">2.7.10.</span> <span class="nav-text">能大致画一下系统架构图吗？</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E9%A1%B9%E7%9B%AE%E7%BB%84%E6%9C%89%E5%A4%9A%E5%B0%91%E4%BA%BA%E4%BA%BA%E5%91%98%E5%A6%82%E4%BD%95%E7%BB%84%E6%88%90"><span class="nav-number">2.7.11.</span> <span class="nav-text">项目组有多少人？人员如何组成？</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E7%A2%B0%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98"><span class="nav-number">2.8.</span> <span class="nav-text">碰到的问题</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%89%8D%E7%AB%AF%E9%97%AE%E9%A2%98-%E8%B7%AF%E7%94%B1%E5%88%87%E6%8D%A2%E9%97%AE%E9%A2%98"><span class="nav-number">2.8.1.</span> <span class="nav-text">前端问题-路由切换问题</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E9%97%AE%E9%A2%98"><span class="nav-number">2.8.2.</span> <span class="nav-text">413问题</span></a></li></ol></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%95%86%E5%93%81%E6%B1%87%E5%88%86%E5%B8%83%E5%BC%8F%E7%94%B5%E5%95%86%E9%A1%B9%E7%9B%AE%E5%BE%85%E6%80%BB%E7%BB%93"><span class="nav-number">3.</span> <span class="nav-text">商品汇分布式电商项目(待总结)</span></a></li><li class="nav-item nav-level-1"><a class="nav-link" href="#%E6%B2%B9%E7%94%B0%E4%BA%A7%E9%87%8F%E8%BF%90%E8%A1%8C%E5%88%86%E6%9E%90%E7%9B%91%E6%8E%A7%E7%B3%BB%E7%BB%9F"><span class="nav-number">4.</span> <span class="nav-text">油田产量运行分析监控系统</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E9%A1%B9%E7%9B%AE%E6%8F%8F%E8%BF%B0-1"><span class="nav-number">4.1.</span> <span class="nav-text">项目描述</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E5%BA%94%E7%94%A8%E6%8A%80%E6%9C%AF-1"><span class="nav-number">4.2.</span> <span class="nav-text">应用技术</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%B8%BB%E8%A6%81%E5%B7%A5%E4%BD%9C-1"><span class="nav-number">4.3.</span> <span class="nav-text">主要工作</span></a></li></ol></li></ol></div>
        </div>
        <!--/noindex-->

        <div class="site-overview-wrap sidebar-panel">
          <div class="site-author animated" itemprop="author" itemscope itemtype="http://schema.org/Person">
    <img class="site-author-image" itemprop="image" alt="别团等shy哥发育"
      src="https://codeleader.oss-cn-beijing.aliyuncs.com/site/avatar.jpg">
  <p class="site-author-name" itemprop="name">别团等shy哥发育</p>
  <div class="site-description" itemprop="description">别团等shy哥发育的博客</div>
</div>
<div class="site-state-wrap animated">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
        <a href="/hexo/archives/">
          <span class="site-state-item-count">17</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
          <a href="/hexo/categories/">
        <span class="site-state-item-count">4</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
          <a href="/hexo/tags/">
        <span class="site-state-item-count">19</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>
  <div class="links-of-author animated">
      <span class="links-of-author-item">
        <a href="https://github.com/xiongtete0519" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;xiongtete0519" rel="noopener me" target="_blank"><i class="fab fa-github fa-fw"></i>GitHub</a>
      </span>
      <span class="links-of-author-item">
        <a href="/hexo/xiongtete0519@gmail.com" title="E-Mail → xiongtete0519@gmail.com" rel="noopener me"><i class="fa fa-envelope fa-fw"></i>E-Mail</a>
      </span>
      <span class="links-of-author-item">
        <a href="https://codeleader.blog.csdn.net/" title="CSDN → https:&#x2F;&#x2F;codeleader.blog.csdn.net&#x2F;" rel="noopener me" target="_blank"><i class="fa CSDN fa-fw"></i>CSDN</a>
      </span>
  </div>

        </div>
      </div>
        <div class="back-to-top animated" role="button" aria-label="返回顶部">
          <i class="fa fa-arrow-up"></i>
          <span>0%</span>
        </div>
    </div>

    
  </aside>


    </div>

    <div class="main-inner post posts-expand">


  


<div class="post-block">
  
  

  <article itemscope itemtype="http://schema.org/Article" class="post-content" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://codeleader.gitee.io/hexo/2023/08/13/%E7%AE%80%E5%8E%86%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="https://codeleader.oss-cn-beijing.aliyuncs.com/site/avatar.jpg">
      <meta itemprop="name" content="别团等shy哥发育">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="CodeLeader">
      <meta itemprop="description" content="别团等shy哥发育的博客">
    </span>

    <span hidden itemprop="post" itemscope itemtype="http://schema.org/CreativeWork">
      <meta itemprop="name" content="简历项目总结(谷粒学院+商品汇电商+油田项目) | CodeLeader">
      <meta itemprop="description" content="">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          简历项目总结(谷粒学院+商品汇电商+油田项目)
        </h1>

        <div class="post-meta-container">
          <div class="post-meta">
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-calendar"></i>
      </span>
      <span class="post-meta-item-text">发表于</span>
      

      <time title="创建时间：2023-08-13 14:51:48 / 修改时间：14:53:37" itemprop="dateCreated datePublished" datetime="2023-08-13T14:51:48+08:00">2023-08-13</time>
    </span>
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-folder"></i>
      </span>
      <span class="post-meta-item-text">分类于</span>
        <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
          <a href="/hexo/categories/%E9%9D%A2%E7%BB%8F/" itemprop="url" rel="index"><span itemprop="name">面经</span></a>
        </span>
    </span>

  
    <span class="post-meta-item" title="阅读次数" id="busuanzi_container_page_pv">
      <span class="post-meta-item-icon">
        <i class="far fa-eye"></i>
      </span>
      <span class="post-meta-item-text">阅读次数：</span>
      <span id="busuanzi_value_page_pv"></span>
    </span>
    <span class="post-meta-break"></span>
    <span class="post-meta-item" title="本文字数">
      <span class="post-meta-item-icon">
        <i class="far fa-file-word"></i>
      </span>
      <span class="post-meta-item-text">本文字数：</span>
      <span>2.1k</span>
    </span>
    <span class="post-meta-item" title="阅读时长">
      <span class="post-meta-item-icon">
        <i class="far fa-clock"></i>
      </span>
      <span class="post-meta-item-text">阅读时长 &asymp;</span>
      <span>7 分钟</span>
    </span>
</div>

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">
        <h1 id="section"></h1>
<h1 id="在线教育平台项目总结">在线教育平台项目总结</h1>
<h2 id="业务模块">业务模块</h2>
<p><img data-src="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230628213533104.png" alt="image-20230628213533104" style="zoom: 80%;"></p>
<span id="more"></span>
<h2 id="功能模块">功能模块</h2>
<figure>
<img data-src="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230628213817956.png" alt=""><figcaption>image-20230628213817956</figcaption>
</figure>
<h2 id="技术点">技术点</h2>
<p><img data-src="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230628213918454.png" alt="image-20230628213918454" style="zoom:80%;"></p>
<h2 id="项目描述">项目描述</h2>
<p>一款<code>B2C</code>模式的职业技能在线教育系统 采用微服务架构和前后端分离开发模式,分为前台用户系统和后台运营平台。</p>
<p>系统后台主要包含讲师管理、课程管理、统计分析模块、订单管理 权限管理。</p>
<p>系统前台主要包括首页数据展示、讲师列表和详情、课程列表和详情、视频点播、微信扫码登录、微信扫码支付。</p>
<h2 id="应用技术">应用技术</h2>
<ul>
<li><p>后端:<code>SpringCloud Alibaba， SpringBoot， SpringSecurity， MybaitsPlus， easyexcel， Swagger，Nginx， Docker， SpringCloud Gateway， Nacos， OpenFeign， JWT</code></p></li>
<li><p>数据库：<code>MySQL</code>， <code>Redis</code><br>
</p></li>
<li><p>可视化图表库:<code>Echarts</code></p></li>
<li><p>第三方接口： 阿里云<code>OSS</code>、 阿里云视频点播、 腾讯云短信服务、 微信支付和登录。</p></li>
<li><p>前端：<code>Vue</code>，<code>Element-UI</code>，<code>axios</code>，<code>node.js</code>，<code>vue-admin-template</code>，<code>Nuxt.js</code></p></li>
</ul>
<h2 id="主要工作">主要工作</h2>
<ul>
<li>在用户登录后台系统时使用腾讯云短信服务并整合<code>Redis</code>缓存实现验证码的发送和校验功能，对用户密码使用<code>MD5</code>加密处理；</li>
<li>前台系统<code>SSO</code>单点登录功能设计，用户只需微信扫码即可实现快速登录；</li>
<li>使用阿里云<code>OSS</code>和视频点播服务实现编写课程大纲、上传课程视频、课程发布功能；</li>
<li>使用<code>RabbitMQ</code>作为消息队列，在创建订单时发送延迟消息，如果定时未支付，取消订单；</li>
<li>在统计分析模块中使用<strong>定时任务</strong>，统计每天的网站注册人数、视频播放量和新增课程数并使用<code>Echarts</code>组件在前端进行可视化操作；</li>
<li>使用<code>OpenFeign</code>完成服务之间的远程调用，使用<code>Nacos</code>实现服务发现与注册，前端请求都交由<code>Gateway</code>进行路由和过滤；</li>
<li>负责后台讲师管理模块的编写，管理员对讲师信息进行统一管理。</li>
</ul>
<h3 id="分布式系统的cap原理">分布式系统的CAP原理</h3>
<p><strong>CAP定理：</strong>指的是在一个分布式系统中，<code>Consistency</code>(一致性)、 <code>Availability</code>(可用性)、<code>Partition tolerance</code>(分区容错性)，三者不可同时获得。</p>
<p><strong>一致性(C)</strong>：在分布式系统中的所有数据备份，在同一时刻是否同样的值。(所有节点在同一时间的数据完全一致，越多节点，数据同步越耗时)</p>
<p><strong>可用性(A)</strong>：负载过大后，集群整体是否还能响应客户端的读写请求。(服务一直可用，而且是正常响应时间)</p>
<p><strong>分区容错性(P)</strong>：分区容错性，就是高可用性，一个节点崩了，并不影响其它的节点(100个节点，挂了几个，不影响服务，越多机器越好)</p>
<h2 id="项目问答">项目问答</h2>
<h3 id="项目拆分为哪几个服务你负责哪个">项目拆分为哪几个服务？你负责哪个？</h3>
<ul>
<li><p>教学服务</p></li>
<li><p>视频点播服务</p></li>
<li><p>用户服务</p></li>
<li><p>网关服务</p></li>
<li><p>订单服务</p></li>
<li><p>鉴权服务</p></li>
<li><p>统计分析服务</p></li>
</ul>
<p><strong>我负责的：</strong></p>
<p>我负责的是教学服务(讲师、课程信息的管理，发布课程大纲)</p>
<p>视频点播(发布课程大纲时候上传课程视频，前端用Aliplayer和播放凭证实现视频播放)</p>
<p>订单(RabbitMQ延迟消息)</p>
<p>统计分析(视频播放量、注册人数等用Echarts可视化)</p>
<p>用户服务中的微信扫码登录</p>
<h3 id="单点登录的几种实现方式">单点登录的几种实现方式？</h3>
<ul>
<li>Session广播机制</li>
<li>使用Cookie+Redis实现</li>
<li>使用token实现</li>
</ul>
<h3 id="微信扫码登录的流程">微信扫码登录的流程？</h3>
<figure>
<img data-src="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230813103710303.png" alt=""><figcaption>image-20230813103710303</figcaption>
</figure>
<h4 id="如何获取扫码人的信息">如何获取扫码人的信息？</h4>
<p>访问授权URL，会生成一个微信二维码，让用户扫描扫码之后微信接口返回<code>code</code>(临时票据)，拿着<code>code</code>值请求微信固定地址，得到两个值：<code>access_token</code>(接口调用凭证)和<code>openid</code>(授权用户唯一标识)再拿着这两个值再去请求获取用户个人信息接口,得到微信扫码人信息(比如昵称、头像、性别等等)。</p>
<p>之后会查询数据库，如果有这个人就直接用JWT生成token字符串返回给前端，否则就先添加到数据库再返回给前端</p>
<blockquote>
<p>这个是前台用户的登录，和后台管理系统用的不是同一张用户表</p>
</blockquote>
<h3 id="阿里云oss怎么用的">阿里云OSS怎么用的？</h3>
<p>(1)文件存储服务器</p>
<p>(2)添加讲师的时候上传讲师头像</p>
<h3 id="视频点播怎么用的播放器用的哪个">视频点播怎么用的？播放器用的哪个？</h3>
<p>在发布课程的时候整合阿里云视频点播服务，</p>
<p>整合了阿里云的视频点播服务，实现视频的上传、删除、播放。</p>
<p>播放器使用的<code>AliPlayer</code>视频播放器，通过播放凭证播放。</p>
<h3 id="阿里云短信服务怎么用的">阿里云短信服务怎么用的？</h3>
<p>注册的时候实现验证码的校验。</p>
<p>在用户登录后台系统时使用腾讯云短信服务并整合Redis缓存实现验证码的发送和校验功能，对用户密码使用MD5加密处理；</p>
<h3 id="消息队列怎么用的">消息队列怎么用的？</h3>
<p>购买付费课程的时候。</p>
<p>使用<code>RabbitMQ</code>作为消息队列，在创建订单时发送延迟消息，如果定时未支付，取消订单；</p>
<h3 id="项目的难点怎么解决的">项目的难点？怎么解决的？</h3>
<p>(1)用户下单30分钟后检测是否支付，如果没有支付，取消订单</p>
<p>解决方案：使用<code>Rabbit</code>作为消息队列，基于延迟插件，在用户下单的时候发送延迟消息，30分钟后检查订单状态是否已经支付，如果没有支付就取消订单。</p>
<h3 id="项目中redis怎么用的">项目中Redis怎么用的</h3>
<p>存储用户的权限列表</p>
<p>登录和注册时候的验证码校验</p>
<p>对不经常更新的数据可以用Redis进行存储</p>
<p>前台系统首页数据</p>
<h3 id="能大致画一下系统架构图吗">能大致画一下系统架构图吗？</h3>
<p><img data-src="https://codeleader.oss-cn-beijing.aliyuncs.com/site/image-20230813121803223.png" alt="image-20230813121803223" style="zoom:80%;"></p>
<h3 id="项目组有多少人人员如何组成">项目组有多少人？人员如何组成？</h3>
<p>10个人，2个产品经理，4个后端，2个前端，1个测试，1个UI。</p>
<h2 id="碰到的问题">碰到的问题</h2>
<h3 id="前端问题-路由切换问题">前端问题-路由切换问题</h3>
<p>多次路由跳转到同一个Vue页面，<code>created</code>方法只会执行一次。</p>
<p>解决：使用Vue监听</p>
<h3 id="问题">413问题</h3>
<p>上传视频的时候，因为Nginx有上传文件大小限制，如果超过<code>Nginx</code>大小，会出现413</p>
<p>413错误：请求体过大</p>
<p>解决：在Nginx中配置客户端大小</p>
<h1 id="商品汇分布式电商项目待总结">商品汇分布式电商项目(待总结)</h1>
<blockquote>
<p>需要换个名字，大型电商很复杂，面试官不会相信是你做的。</p>
</blockquote>
<h1 id="油田产量运行分析监控系统">油田产量运行分析监控系统</h1>
<h2 id="项目描述-1">项目描述</h2>
<p>一个前后端分离的油田产量运行分析监控一体化系统，实现不同级别、不同周期下的单井产量运行曲线绘制、数据图表展示、产量异常报警、权限管理等功能。</p>
<h2 id="应用技术-1">应用技术</h2>
<ul>
<li>后端：<code>SpringBoot</code>， <code>SpringSecurity</code>， <code>MybatisPlus</code>， <code>Swagger2</code>， <code>JWT</code>，<code>Nginx</code>， <code>alibaba-easyexcel</code><br>
</li>
<li>数据库：<code>MySQL</code>，<code>Redis</code></li>
<li>可视化图表库：<code>Echarts</code></li>
<li>第三方接口：阿里云<code>OSS</code>,腾讯云<code>SMS</code>短信服务<br>
</li>
<li>前端：<code>Vue</code>, <code>axios</code>, <code>Element-UI</code>, <code>Node.js</code>, <code>vue-element-admin</code></li>
</ul>
<h2 id="主要工作-1">主要工作</h2>
<ul>
<li>基于腾讯云<code>SMS</code>短信服务实现短信验证码的发送，对用户密码使用<code>MD5</code>算法加密处理;</li>
<li><strong>权限管理</strong>：使用<code>Spring Security</code>对不同的角色分配不同的权限，后端返回用户所属角色的权限字符串和可操作菜单并存储到<code>Redis</code>，前端使用动态路由显示用户可操作的界面和按钮；</li>
<li><strong>数据可视化</strong>：使用<code>Echarts</code>技术渲染油井和注水井的生产曲线；</li>
<li><strong>批量导入</strong>：使用<code>alibaba-easyexcel</code>完成油井和注水井的生产数据上传与下载；</li>
<li>使用阿里云<code>OSS</code>实现用户图像信息的存储，解决海量数据存储与弹性扩容；</li>
<li>对认证通过的用户颁发<code>JWT</code>令牌，并在前端保存这个<code>token</code>，每次请求都需要携带<code>token</code>让后端进行权限校验，校验通过后返回响应数据。</li>
</ul>

    </div>

    
    
    

    <footer class="post-footer">
          

<div class="post-copyright">
<ul>
  <li class="post-copyright-author">
      <strong>本文作者： </strong>别团等shy哥发育
  </li>
  <li class="post-copyright-link">
      <strong>本文链接：</strong>
      <a href="https://codeleader.gitee.io/hexo/2023/08/13/%E7%AE%80%E5%8E%86%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93/" title="简历项目总结(谷粒学院+商品汇电商+油田项目)">https://codeleader.gitee.io/hexo/2023/08/13/简历项目总结/</a>
  </li>
  <li class="post-copyright-license">
    <strong>版权声明： </strong>本博客所有文章除特别声明外，均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" rel="noopener" target="_blank"><i class="fab fa-fw fa-creative-commons"></i>BY-NC-SA</a> 许可协议。转载请注明出处！
  </li>
</ul>
</div>

          <div class="post-tags">
              <a href="/hexo/tags/%E9%9D%A2%E7%BB%8F/" rel="tag"># 面经</a>
              <a href="/hexo/tags/%E7%AE%80%E5%8E%86/" rel="tag"># 简历</a>
          </div>

        

          <div class="post-nav">
            <div class="post-nav-item">
                <a href="/hexo/2023/08/11/%E9%9D%A2%E8%AF%95%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E7%82%B9%E6%80%BB%E7%BB%93/" rel="prev" title="面试知识点总结(持续更新中)">
                  <i class="fa fa-chevron-left"></i> 面试知识点总结(持续更新中)
                </a>
            </div>
            <div class="post-nav-item">
                <a href="/hexo/2023/08/14/%E7%AC%94%E8%AF%95%E9%A2%98%E6%95%B4%E7%90%86/" rel="next" title="笔试题回顾">
                  笔试题回顾 <i class="fa fa-chevron-right"></i>
                </a>
            </div>
          </div>
    </footer>
  </article>
</div>






</div>
  </main>

  <footer class="footer">
    <div class="footer-inner">


<div class="copyright">
  &copy; 2022 – 
  <span itemprop="copyrightYear">2024</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">别团等shy哥发育</span>
</div>
<div class="wordcount">
  <span class="post-meta-item">
    <span class="post-meta-item-icon">
      <i class="fa fa-chart-line"></i>
    </span>
    <span title="站点总字数">81k</span>
  </span>
  <span class="post-meta-item">
    <span class="post-meta-item-icon">
      <i class="fa fa-coffee"></i>
    </span>
    <span title="站点阅读时长">4:56</span>
  </span>
</div>
<div class="busuanzi-count">
    <span class="post-meta-item" id="busuanzi_container_site_uv">
      <span class="post-meta-item-icon">
        <i class="fa fa-user"></i>
      </span>
      <span class="site-uv" title="总访客量">
        <span id="busuanzi_value_site_uv"></span>
      </span>
    </span>
    <span class="post-meta-item" id="busuanzi_container_site_pv">
      <span class="post-meta-item-icon">
        <i class="fa fa-eye"></i>
      </span>
      <span class="site-pv" title="总访问量">
        <span id="busuanzi_value_site_pv"></span>
      </span>
    </span>
</div>

<!-- <br /> -->
<!-- 网站运行时间的设置 -->
<span id="timeDate">载入天数...</span>
<!-- <span id="times">载入时分秒...</span> -->
<script>
    var now = new Date();
    function createtime() {
        var grt= new Date("11/17/2022 8:00:00");//此处修改你的建站时间或者网站上线时间
        now.setTime(now.getTime()+250);
        days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days);
        hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours);
        if(String(hnum).length ==1 ){hnum = "0" + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum);
        mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = "0" + mnum;}
        seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum);
        snum = Math.round(seconds); 
        if(String(snum).length ==1 ){snum = "0" + snum;}
        // var times = document.getElementById("times").innerHTML = hnum + " 小时 " + mnum + " 分 " + snum + " 秒";
        document.getElementById("timeDate").innerHTML = "本站已安全运行 "+dnum+" 天 "+hnum + " 小时 " + mnum + " 分 " + snum + " 秒";
    }
setInterval("createtime()",250);
</script>

    </div>
  </footer>

  

<noscript>
  <div class="noscript-warning">Theme NexT works best with JavaScript enabled</div>
</noscript>


  
  <script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js" integrity="sha256-XL2inqUJaslATFnHdJOi9GfQ60on8Wx1C2H8DYiN1xY=" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/lozad.js/1.16.0/lozad.min.js" integrity="sha256-mOFREFhqmHeQbXpK2lp4nA3qooVgACfh88fpJftLBbc=" crossorigin="anonymous"></script>
<script src="/hexo/js/comments.js"></script><script src="/hexo/js/utils.js"></script><script src="/hexo/js/motion.js"></script><script src="/hexo/js/next-boot.js"></script>

  <script src="https://cdnjs.cloudflare.com/ajax/libs/hexo-generator-searchdb/1.4.1/search.js" integrity="sha256-1kfA5uHPf65M5cphT2dvymhkuyHPQp5A53EGZOnOLmc=" crossorigin="anonymous"></script>
<script src="/hexo/js/third-party/search/local-search.js"></script>




  <script src="/hexo/js/third-party/pace.js"></script>

  
  <script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>




  

  <script class="next-config" data-name="enableMath" type="application/json">true</script><script class="next-config" data-name="mathjax" type="application/json">{"enable":true,"tags":"none","js":{"url":"https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-mml-chtml.js","integrity":"sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI="}}</script>
<script src="/hexo/js/third-party/math/mathjax.js"></script>



</body>
</html>
